import { KeyPair } from '../../src';

// ACCOUNT_1 has public and private keys with prefix
export const ACCOUNT_1 = {
  accountId: '0.0.81320',
  prvKeyWithPrefix: '302e020100300506032b65700422042062b0b669de0ab5e91b4328e1431859a5ca47e7426e701019272f5c2d52825b01',
  pubKeyWithPrefix: '302a300506032b65700321005a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf9',
  privateKeyBytes: Uint8Array.from(
    Buffer.from('62b0b669de0ab5e91b4328e1431859a5ca47e7426e701019272f5c2d52825b01', 'hex')
  ),
  publicKeyBytes: Uint8Array.from(
    Buffer.from('5a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf9', 'hex')
  ),
};

export const OPERATOR = {
  accountId: '0.0.75861',
  publicKey: '302a300506032b6570032100d32b7b1eb103c10a6c8f6ec575b8002816e9725d95485b3d5509aa8c89b4528b',
  privateKey: '302e020100300506032b65700422042088b5af9484cef4b0aab6e0ba1002313fdfdfacfdf23d6d0957dc5f2c24fc3b81',
};

// ACCOUNT_2 has public and private keys without prefix
export const ACCOUNT_2 = {
  accountId: '0.0.75861',
  privateKey: '5bb72603f237c0993f7973d37fdade32c71aa94aee686aa79d260acba1882d9a',
  publicKey: '592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f8831261',
};

// ACCOUNT_3 has public and private keys without prefix
export const ACCOUNT_3 = {
  accountId: '0.0.78963',
  privateKey: '310a775bcc36016275d64cb8e4508e19437708852e42a3948a641b664be800a9',
  publicKey: 'fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e91',
};

export const ed25519PrivKeyPrefix = '302e020100300506032b657004220420';

export const ed25519PubKeyPrefix = '302a300506032b6570032100';

export const OWNER1 = ACCOUNT_1.pubKeyWithPrefix;

export const OWNER2 = ACCOUNT_2.publicKey;

export const OWNER3 = ACCOUNT_3.publicKey;

export const FEE = '1000000000';

export const VALID_ADDRESS = { address: '10.0.24141' };

export const INVALID_ADDRESS = { address: '1002.4141' };

export const WALLET_INITIALIZATION =
  '229f010a100a080888e1e0f8051000120418d5d00412021804188094ebdc03220208785a7d0a722a700802126c0a2212201c5b8332673e2bdd7d677970e549e05157ea6a94f41a5da5020903c1c391f8ef0a221220265f7cc91c0330ef27a626ff8688da761ab0543d33ba63c8315e2c91b6c595af0a22122003ad12643db2a6ba5cf8a1da14d4bd5ee46625f88886d01cc70d2d9c6ee2266610004a0508d0c8e103';

export const NON_SIGNED_TRANSFER_TRANSACTION =
  '224e0a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401721e0a1c0a0c0a080800100018a8fb0410130a0c0a080800100018d5d0041014';

export const NON_SIGNED_MULTI_TRANSFER_TRANSACTION =
  '225c0a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401722c0a2a0a0c0a080800100018a8fb0410310a0c0a080800100018d5d00410140a0c0a080800100018f3e804101e';

export const SIGNED_MAINNET_TRANSFER_TRANSACTION_ID =
  'a865ffcc8bbf01eaf236b8f9823c47ef5b89fc94378f75d13161659eb60d27f8556861c17f7d4d42ba32b00267364b4f';

export const SIGNED_MAINNET_TRANSFER_TRANSACTION =
  '1acc010a640a201b34d547b392e17da4eae3e0ff9be421a4f143907e44826983b70a927a1357291a407850ab62c0641d9d48c8606beb3766216f4ad3d0a561e0fde899b0dd097d5918297e95501aa0e1e7d04aef150237e2301533c35133d89a4de4a04f87f292c4030a640a20c10789d379cabf39a055a9ce296e724d5abc255c38fd8432d1a583281dbc1e201a409bd5c84200a29001d43111a15f9a3deef878119ba86d969fb92e4810ceccefb9cebd9ef0a6d80c6a09f73edc7c66e1388fb06152b71344d6f669933762fcfc0c22510a180a0c0894cba28306109faab4800112080800100018988e01120608001000180418a5b907220308b40172240a220a0f0a080800100018988e0110ffc1d72f0a0f0a080800100018f8cf031080c2d72f';

export const SIGNED_TRANSFER_TRANSACTION =
  '1a660a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a40c886ac3600c29184e7d9fc76ed9679ce47849a9e38739d0ee4e0dbba85bc32b66248cc933cbd159215625cbb3b896719e54a731e89cdcf1d5b2e4c0229204d02224e0a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401721e0a1c0a0c0a080800100018a8fb0410130a0c0a080800100018d5d0041014';

export const SIGNED_MULTI_TRANSFER_TRANSACTION =
  '1a660a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a4077af6e477918925deafd500414a388753c234e10d40e1e1f9a6fb11160b120e3654717259ad54316f43085aa605b7285b3eec24250e96daf6af4aa650d43d605225c0a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401722c0a2a0a0c0a080800100018a8fb0410310a0c0a080800100018d5d00410140a0c0a080800100018f3e804101e';

export const THREE_TIMES_SIGNED_TRANSACTION =
  '1ab2020a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a407494747088c0a1df08b6436f91aaad709e815d2392913dc3bff8779ca62ce1a6da7a6588c627c2910cf47aca9f4ffc70c6b7974f52bd8625c842884f47ec67010a640a20592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f88312611a40bdaebe136d857e4c36f7690252697ab2c770d02da759073104650c3a32ca6c567ddc5261f8426e3b455d273783a9a2885085367c6ec3526cd9ad883056b1a4000a640a20fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e911a40ea670e00613eb62b13cfd68eb5e74a48f3f9ac285d110bb0b14eec8b8138c1316d27c15e0e332e1301d2f4cb3175d3d34892cfecd9f149d605849a3d9f41cf09224d0a180a0c089ded8af90510aac5d8b10112080800100018a8fb041206080010001804188094ebdc03220308b401721e0a1c0a0c0a080800100018a8fb0410130a0c0a080800100018d5d0041014';

export const ENCODED_TRANSACTION = 'not defined';

export const errorMessageOddLengthOrNonHexPrivateKey = 'Invalid private key length. Must be a hex and multiple of 2';

export const errorMessageInvalidPrivateKey = 'Invalid private key';

export const errorMessageInvalidPublicKey = 'Invalid public key:';

export const errorMessageMissingPrivateKey = 'Missing private key';

export const errorMessageNotPossibleToDeriveAddress = 'Address derivation is not supported in Hedera';

export const errorMessageFailedToParse = 'Failed to parse correct key';

export const INVALID_KEYPAIR_PRV = new KeyPair({
  prv: '8CAA00AE63638B0542A304823D66D96FF317A576F692663DB2F85E60FAB2590C',
});

export const KEYPAIR_PRV = new KeyPair({
  prv: '302e020100300506032b65700422042062b0b669de0ab5e91b4328e1431859a5ca47e7426e701019272f5c2d52825b01',
});

export const WALLET_TXDATA = Uint8Array.from(
  Buffer.from(
    '22a3010a140a0c0883aa91f9051080feab9b01120418d5d00412021804188094ebdc03220208785a7d0a722a700802126c0a2212205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf90a221220592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f88312610a221220fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e9110004a0508d0c8e103',
    'hex'
  )
);

export const WALLET_SIGNED_TRANSACTION =
  '1a660a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a40ff00c43d4da6d33abf90b2de7d36db8cea62248a6b8ef35be7741c43e762f1208fe5224ac79cd53e59df48913418e976320f789a091cf67a23278a12781b490d22a3010a140a0c0883aa91f9051080feab9b01120418d5d00412021804188094ebdc03220208785a7d0a722a700802126c0a2212205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf90a221220592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f88312610a221220fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e9110004a0508d0c8e103';

export const WALLET_BUILDER_SIGNED_TRANSACTION =
  '1a660a640a20d32b7b1eb103c10a6c8f6ec575b8002816e9725d95485b3d5509aa8c89b4528b1a40e91c6804cd4e27650e74bba8a8cd9d9f509a007360a4bd697789d295ef3a7f72680f59cd01fa742581326864c8ca8f16a7d2b73dc9138d3bbe9ec5e29e69990a22ac010a180a0c089ded8af90510aac5d8b10112080800100018d5d0041206080010001804188094ebdc03220308b4015a7d0a722a700802126c0a2212205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf90a221220592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f88312610a221220fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e9110004a0508d0c8e103';

export const WALLET_BUILDER_SIGNED_TWICE_TRANSACTION =
  '1acc010a640a20d32b7b1eb103c10a6c8f6ec575b8002816e9725d95485b3d5509aa8c89b4528b1a40e91c6804cd4e27650e74bba8a8cd9d9f509a007360a4bd697789d295ef3a7f72680f59cd01fa742581326864c8ca8f16a7d2b73dc9138d3bbe9ec5e29e69990a0a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a40e86c50ff3d5df00b8e3f3f301c8e29582a5293cc5994e833611d97118cf92bad9024e2f3051c4c2aeec4812bd5857389688fec0810e8147091ccde8d2e428b0122ac010a180a0c089ded8af90510aac5d8b10112080800100018d5d0041206080010001804188094ebdc03220308b4015a7d0a722a700802126c0a2212205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf90a221220592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f88312610a221220fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e9110004a0508d0c8e103';

export const WALLET_INIT_2_OWNERS =
  '227f0a140a0c089ded8af90510aac5d8b101120418d5d00412021804188094ebdc03220208785a590a4e2a4c080212480a2212205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf90a221220592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f883126110004a0508d0c8e103';

export const SIGNED_TOKEN_TRANSFER_TRANSACTION =
  '1a660a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a40b3ca41d1ed567a6c52ae901f5dd924d00cbc3dfea938b0aed1e0fd1902a3bd0a5b4850d223d3a2226cbe18dc0a2aae7582eea33c1318f57e16904de3545e6c0d22580a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401722812260a080800100018da991a120c0a080800100018a8fb041013120c0a080800100018d5d0041014';

export const NON_SIGNED_TOKEN_TRANSFER_TRANSACTION =
  '22580a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401722812260a080800100018da991a120c0a080800100018a8fb041013120c0a080800100018d5d0041014';

export const SIGNED_TOKEN_MULTI_TRANSFER_TRANSACTION =
  '22670a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401723712350a090800100018d3fa8a01120c0a080800100018a8fb041031120c0a080800100018d5d0041014120c0a080800100018f3e804101e';

export const NON_SIGNED_TOKEN_MULTI_TRANSFER_TRANSACTION =
  '22660a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401723612340a080800100018da991a120c0a080800100018a8fb041031120c0a080800100018d5d0041014120c0a080800100018f3e804101e';

export const NON_SIGNED_TOKEN_MULTI_TRANSFER_TRANSACTION_SERIALIZED =
  '1a660a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a408d5a5a149aa3b842fc2bff25dbe932782ebb0f5db7770bc34c72dbf07f6abfa5485045efd86dad13f66673e0769462ddc61b49f9c24f3f2c69fa7c559459230422660a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401723612340a080800100018da991a120c0a080800100018a8fb041031120c0a080800100018d5d0041014120c0a080800100018f3e804101e';

export const THREE_TIMES_SIGNED_TOKEN_TRANSACTION =
  '1ab2020a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a40632b595ee568ca06824993f94fcad8db33189e1838cd390712159627bd9d0d8ec78712ff7e975c5c695bce96d80ede288d3d05752b0b7aea868ce5dd5f16c00f0a640a20592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f88312611a403cb28488655ac9218a7964a1990247756390bb1faddee11f65cc4d6fc9dd3db331fcd211905611b7589ad3fedde87e6361260494903acdb5a45b19580a06f10c0a640a20fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e911a40049392a214f70e2cca8f58d652eeb64f0161d6d7f7a4972d07cfe2513f555338df1cd0be95bb85951f6bf20f16fc44680fefc921fcd4fbb54e9bc5ae3a212d0322570a180a0c089ded8af90510aac5d8b10112080800100018a8fb041206080010001804188094ebdc03220308b401722812260a080800100018da991a120c0a080800100018a8fb041013120c0a080800100018d5d0041014';

export const SIGNED_TOKEN_ASSOCIATE_TRANSACTION =
  '1a660a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a40acf1576d775563529a074834a60f495526da3e32881ebc01a4ad93371a73b04f483f6a3731514ff7899387246ddafb1c1401cb4c01d0921256ce20b04b1b470122450a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401c202140a080800100018a8fb0412080800100018da991a';

export const NON_SIGNED_TOKEN_ASSOCIATE_TRANSACTION =
  '22450a180a0c089ded8af90510aac5d8b10112080800100018a8fb0412070800100018a912188094ebdc03220308b401c202140a080800100018a8fb0412080800100018da991a';

export const THREE_TIMES_SIGNED_TOKEN_ASSOCIATE_TRANSACTION =
  '1ab2020a640a205a9111b5e6881ff20b9243a42ac1a9a67fa16cd4f01e58bab30c1fe611ea8cf91a403c4c86d35bbd3fccdb97137d16b60c3d774c5a51dff18100040fb509f72d230a352944553ac001046d79e9e99e6245bfbfea495dcf0c76b63d497ba69e9e560a0a640a20592a4fbb7263c59d450e651df96620dc9208ee7c7d9d6f2fdcb91c53f88312611a4044b5522c474953de2e08ea4df4d2d6a2f437f4014a9467bc0c11de9913d4630da5eb9a7f98c08de4aad07e5c4a3cba092958df8059b5b4c9c68e0f74117f69050a640a20fa344793601cef71348f994f30a168c2dd55f357426a180a5a724d7e03585e911a40c847b91651c95a47fb3b6e776e421645df7b5a6ebbc328701b204f7e0648c7199d2345f5bb85b422400bc1f18111409e70e346dec14c7e2e5592c89d5bda1b0c22440a180a0c089ded8af90510aac5d8b10112080800100018a8fb041206080010001804188094ebdc03220308b401c202140a080800100018a8fb0412080800100018da991a';
